﻿//
// IMeasuredItemRepositoryContract.cs
//
// Authors:
//    Claus Jørgensen <10229@iha.dk>
//
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics.Contracts;

namespace RSD.Data.Contracts
{
    /// <summary>
    /// IMeasuredItemRepository code contract.
    /// </summary>
    [ContractClassFor(typeof(IMeasuredItemRepository))]
    internal abstract class IMeasuredItemRepositoryContract : IMeasuredItemRepository
    {
        #region IMeasuredItemRepository Members

        public IEnumerable<MeasuredItem> Search(DateTime startDate, DateTime endDate, ItemClassification itemClassification)
        {
            Contract.Requires(startDate != null);
            Contract.Requires(endDate != null);
            Contract.Requires(itemClassification != null);
            Contract.Ensures(Contract.Result<IEnumerable<MeasuredItem>>() != null);

            return default(IEnumerable<MeasuredItem>);
        }

        #endregion

        #region IRepository<MeasuredItem> Members

        public IEnumerable<MeasuredItem> FindAll()
        {
            throw new NotImplementedException();
        }

        public IEnumerable<MeasuredItem> FindBy(System.Linq.Expressions.Expression<Func<MeasuredItem, bool>> predicate)
        {
            throw new NotImplementedException();
        }

        public IRepository<MeasuredItem> Add(MeasuredItem entity)
        {
            throw new NotImplementedException();
        }

        public IRepository<MeasuredItem> Remove(MeasuredItem entity)
        {
            throw new NotImplementedException();
        }

        public IRepository<MeasuredItem> SaveChanges()
        {
            throw new NotImplementedException();
        }

        #endregion

        #region IDisposable Members

        public void Dispose()
        {
            throw new NotImplementedException();
        }

        #endregion
    }
}
